import axios from "axios";
import nprogress from "nprogress";
import "nprogress/nprogress.css";

let service = axios.create({
  //基础路径
  baseURL: "/api/v1",
  headers: {
    'Content-Type': 'application/json; charset=utf-8'
  },
  //请求不能超过5S
  timeout: 5000,
});

//请求拦截器----在项目中发请求（请求没有发出去）可以做一些事情
service.interceptors.request.use((config) => {
  // 可以让进度条开始动
  nprogress.start();
  return config;
}, error => {
  // 请求失败提示
  return Promise.reject(error)
});

//响应拦截器----当服务器手动请求之后，做出响应（相应成功）会执行的
service.interceptors.response.use(
  response => {
    //进度条结束
    nprogress.done();
    // 如果返回的状态码为200，说明接口请求成功，可以正常拿到数据
    // 否则的话抛出错误
    if (response.status === 200) {
      return Promise.resolve(response.data);
    } else {
      return Promise.reject(response);
    }
  },
  error => {
    //进度条结束
    nprogress.done();
    return Promise.reject(error.response)
  }
);

export default service;